import java.net.*;
import java.io.*;

public class EchoServer
{
	public static PrintWriter outLog = null;
	public static void main(String args[])
	{
		ServerSocket serverSocket = null;
		Socket socket = null;
		InputStream inp = null;
		BufferedReader brinp = null;
		DataOutputStream out = null;
		PrintWriter outp = null;
		try{
	outp = new PrintWriter(new OutputStreamWriter(System.out, "Cp852"), true);
		}
		catch(UnsupportedEncodingException e){
			System.out.println("Nie mona ustawi strony kodowej Cp852.");
			outp = new PrintWriter(new OutputStreamWriter(System.out), true);
		}
		try{
			outLog = new PrintWriter (new FileOutputStream("ServerLog.txt"), true);
		}
		catch(FileNotFoundException e){
			outp.println("Nie moge utworzy pliku logu.");
			System.exit(-1);
		}
		try{
			serverSocket = new ServerSocket(6666);
		}
		catch(IOException e){
			writeLog("Bd przy tworzeniu gniazda serwerowego.");
			System.exit(-1);
		}
		writeLog("Inicjalizacja gniazda zakoczona...");
		writeLog("Parametry gniazda: " + serverSocket);
		while(true){
			try{
				socket = serverSocket.accept();
			}
			catch(IOException e){
				writeLog("Bd wejcia-wyjcia: " + e);
			}
			writeLog("Nadeszo poczenie...");
			writeLog("Parametry poczenia: " + socket);
			new EchoServerThread(socket, outLog).start();
		}
	}
	public static void writeLog(String line){
		synchronized(outLog){
			outLog.println(line);
		}
	}
}
